package com.example.mysql.学习笔记.基础.约束;

public class 主键约束 {
}

/**
 * PRIMARY KEY  主键(非空且唯一)约束  主键名总是 PRIMARY
 *
 *
 *
 * 一个表最多只能有一个主键约束，(原因是因为  Mysql的存储方式是B+数 下篇再讲)
 *  建立主键约束可以在列级别创建，也可以在表级别上创建。
 *
 * - 主键约束对应着表中的一列或者多列（复合主键）
 * - 如果是多列组合的复合主键约束，那么这些列"都不允许为空值"，并且"组合的值"不允许重复。
 * - **MySQL的主键名总是 PRIMARY **，就算自己命名了主键约束名也没用。
 *
 * - 当创建主键约束时，系统默认会在所在的列或列组合上建立对应的**主键索引**
 *   （能够根据主键查询的，就根据主键查询，效率更高）。
 *    如果删除主键约束了，主键约束对应的索引就自动删除了。
 *
 * - 需要注意的一点是，不要修改主键字段的值。
 *  因为主键是数据记录的唯一标识，如果修改了主键的值，就有可能会破坏数据的完整性。
 *
 *   CREATE TABLE IF NOT EXISTS 表名(
 *   字段名 数据类型 PRIMARY KEY,
 *   字段名 数据类型,
 *   字段名 数据类型,
 *   //表级约束   CONSTRAINT 约束名字   可不要  (字段1,字段2)可以一个
 *   CONSTRAINT 约束名字 PRIMARY KEY(字段1,字段2)
 *   );
 *
 *   添加主键约束    一般不要删除和修改主键
 *   alter table 表名称 add 约束 key(字段列表);  这种方式   删除时需要特殊方法
 *   删除主键约束    在实际开发中   不会删除主键约束 因为已删除的就没用了  数据库会自动构建一个主键重新排列
 *   ALTER TABLE 表名
 *   DROP PRIMARY KEY
 */